package com.retail.task;

import lombok.extern.slf4j.Slf4j;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.stereotype.Component;

/**
 * @author Administrator
 */
@Component
@Slf4j
public class ServerCategoryJobTask extends QuartzJobBean {
    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        try {
            // 需要执行任务详细业务代码 。。。
            System.out.println(":dddddddddddddddddddddddd");
            // 此处catch一下,为了在执行失败后,不让quartz再执行一次业务逻辑,导致业务数据错误，
            // 正常应该是不应该将异常抛到此处的，但是由于我的项目需要，只能在这里进行捕捉了，这里是由于Quartz的失败重试机制，容易导致数据异常。
        } catch (Exception e) {
            log.error("{}:执行失败,跳过此次任务执行。",jobExecutionContext.getJobDetail().getKey().getName());
        }
    }
}
